/*
 *	全局正则表达式
 * 
 * 	@return {Object} 返回表达式及不正确的提示语
 */
const jsonReg =  {
	// 验证手机号
	phone: {
		reg: /^1[3-9]\d{9}$/,
		msg: '手机号格式不正确'
	},
	// 验证密码
	password: {
		reg: /^.{8,24}$/,
		msg: '密码为8~24位'
	},
	// 短信验证码
	dxcode: {
		reg: /^\d{6}$/,
		msg: '验证码为6位纯数字'
	},
	// 邮箱
	email: {
		reg: /^[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*@[a-zA-Z0-9]+([-_.][a-zA-Z0-9]+)*\.[a-z]{2,}$/,
		msg: '邮箱格式不正确'
	},
	// 身份证号
	idcard: {
		reg: /(^\d{15}$)|(^\d{17}(x|X|\d)$)/,
		msg: '身份证号格式不正确'
	},
	// 姓名
	name: {
		reg: /^[^0-9]{2,20}$/,
		msg: '姓名格式不正确'
	},
	// 机构名称
	institutionName: {
		reg: /^[^0-9]{1,30}$/,
		msg: '单位或机构名称格式不正确'
	},
	// 职称
	 post: {
	 	reg:/^[\u4e00-\u9fa5]{1,10}$/,
	 	msg: '请输入1-10位职业'
	 },
	 //详细地址
	 addressDetail:{
		 reg: /^(?![0-9]+$)(?![a-zA-Z]+$){1,80}/,
		 msg:'请输入由1-80位数字、字母和汉字'
	 },
	 // 物流单号
	 logisticsOrderNo:{
		 reg:/^[A-Za-z0-9]{6,30}$/,
		 msg:'请输入正确的物流单号'
	 }
}

/*
 *	验证是否为(''|null|undefined)
 * 
 * 	@return {Boolean} 返回true或者false，传入isNullText为有提示内容
 */
const funNull = (e, isNullText,toast) => {
	if (String(e) == '' || String(e) == 'null' || String(e) == 'undefined' || String(e) == 'false') {
		if (isNullText) {
			if(toast){
				uni.showToast({
					title:isNullText,
					icon:'none'
				})
			}else{
				uni.showModal({
					title: '提示',
					content: isNullText
				})
			}
		}
		return false
	} else {
		return true
	}
}

/*
 * 	字符验证
 * 
 * 	@return {Boolean/String} 返回true或者错误的提示语
 */
const fun = (reg, val) => {
	if (jsonReg[reg].reg.test(val)) {
		return true
	} else {
		return jsonReg[reg].msg
	}
}

/*
 * 	字符验证并提示
 *  默认传入空也提示，isNullText为空内容提示，为空不验证
 * 
 * 	@return {Boolean} 返回true或者false，并提示
 */
const funModal = (reg, val, isNullText) => {
	if (isNullText) {
		if (!funNull(val, isNullText)) return
	}
	if (jsonReg[reg].reg.test(val)) {
		return true
	} else {
		uni.showModal({
			title: '提示',
			content: jsonReg[reg].msg
		})
		return false
	}
}

const funShowToast = (reg, val, isNullText,noreg) => {
	if (isNullText) {
		if (!funNull(val, isNullText,true)) return
	}
	if(!reg) return true
	if (jsonReg[reg].reg.test(val)) {
		return true
	} else {
		uni.showToast({
			title:jsonReg[reg].msg,
			icon:'none'
		})
		return false
	}
}

export default {
	jsonReg,
	funNull,
	fun,
	funModal,
	funShowToast
}